# Base64

Base64 是一种基于 64 个可打印字符表示二进制数据的编码方法,常用于在文本协议(如 HTTP)中安全传输二进制数据。

# 一、核心原理

# 字符集构成

  • 基础字符A-Za-z0-9
  • 补充符号+/
  • 总计 64 字符ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

# 编码过程

  • 二进制分组:将输入数据按 3 字节(24位)分组
  • 位重分割:将 24 位划分为 4 个 6 位的片段
  • 字符映射:每个 6 位片段对应 Base64 字符集的索引
  • 填充规则:若数据不足 3 字节,用 = 补位

例如,将 aaa 编码步骤。

1. aaa = 0110 0001 0110 0001 0110 0001
2. 011000 010110 000101 100001  // base 2
3. 24 22 5 33                   // base 10
4. Y W F h

# 二、变体与应用场景

# 标准 Base64

  • 特征:包含 +/ 和填充符 =
  • 用途:邮件附件、JSON/XML 数据传输

# URL-Safe 变体(Base64url)

  • 改进点

    • 替换敏感字符:+-/_
    • 省略填充符 =
  • 典型场景

    • URL 参数传递(如 JWT Token)
    • 数据库存储避免 SQL 通配符冲突

# 其他变体

# 三、技术优势

  • 跨平台兼容:纯 ASCII 字符避免编码冲突
  • 数据完整性:编码后长度可被 4 整除,便于校验
  • 安全性:避免二进制数据直接传输导致的控制字符问题

# 四、注意事项

  • 体积膨胀:编码后数据体积增加约 33%
  • 非加密:需配合加密算法保障数据安全
  • 传输优化:建议配合压缩算法使用

# Reference